package transactionimplementation

import(
	abstracttransactions "SoftwareEngineering/AbstractTransactions"
	model "SoftwareEngineering/Model"
	modelimplementation "SoftwareEngineering/ModelImplementation"
)

type AddCommissionedEmployee struct {
	itsSalary float64
	abstracttransactions.AddEmployeeTransaction
	itsCommissionRate float64
}

func (a AddCommissionedEmployee) newAddCommissionedEmployee(empid int,name string,address string,salary float64,commissionRate float64){
	a.itsSalary = salary
	a.itsCommissionRate = commissionRate
	abstracttransactions.AddEmployeeTransaction{}.NewAddEmployeeTransaction(empid,name,address)
}

func (a AddCommissionedEmployee) GetClassification() model.PaymentClassification {
	return modelimplementation.CommissionedClassification(a.itsSalary,a.itsCommissionRate)
}

func (a AddCommissionedEmployee) GetSchedule() model.PaymentSchedule {
	return &modelimplementation.BiweeklySchedule{}
}